package ms.platform.system.dao;

import java.util.HashSet;
import java.util.List;

import ms.platform.system.model.Menu;
import ms.platform.system.model.Resource;
import ms.platform.system.model.RoleResource;

public interface ResourceDAO {

	HashSet<Resource> getAllResourceByAdminId(Integer id);
	
	/**
	 * 获取所有资源
	 * @return
	 */
	List<Resource> queryResourceList();
	
	/**
	 * 获取启用资源
	 * @return
	 */
	List<Resource> queryUsedResourceList();
	
	/**
	 * 根据id某资源
	 * @param id
	 * @return
	 */
	Resource queryResourceById(Integer id);

	/**
	 * 修改资源
	 * @param resource
	 */
	void updateResource(Resource resource);

	/**
	 * 添加资源
	 */
	void insertResource(Resource resource);
	
	/**
	 * 根据id删除资源
	 * @param id
	 */
	void deleteResourceById(Integer id);
	List<Menu> getAllMenuByAdminId(Integer id);
	
	/**
	 * 修改启用/禁用状态 
	 * @param resource
	 */
	void updateResourceById(Resource resource);
	
	void insertRoleResource(RoleResource roleResource);
	
	void deleteRoleResource(RoleResource roleResource);
	void deleteRoleResourceById(Integer roleId);
	List<Resource> queryResourceByRole(Integer id);
	
	void orderResource(RoleResource roleResource);

	HashSet<String> getAllResourceUrlByAdminId(Integer id);

	List<RoleResource> queryRoleResource(RoleResource roleResource);
	
	/**
	 * 查询‘登陆’，‘退出’，‘首页’三个系统资源的id
	 */
	public List<Integer> queryResourceIdList();
}
